const fs = require("fs");
const fileService = require("../service/file.service");
const UserService = require("../service/user.service");
const { UPLOAD_PATH } = require("../config/path");

// 用户控制器
class userController {
  /**
   * @description 用户注册，其中调用了service层的create方法
   * @param {object} ctx
   * @param {function} next
   */
  async create(ctx, next) {
    // 1. 获取用户传递的参数
    const user = ctx.request.body;

    // 3.将user信息存储到数据库中
    const reslut = await UserService.create(user);

    // 4. 查看存储结果，告知前端创建成功
    ctx.body = {
      message: "用户创建成功~",
      data: reslut,
    };
  }
  async showAvatarImage(ctx, next) {
    
    // 1.获取用户的id
    const { userId } = ctx.params;

    // 2.获取userId对应的用户头像信息
    const avatarInfo = await fileService.queryAvatarWithUserId(userId);

    // 3.读取头像所在的文件
    const { filename, mimetype } = avatarInfo;
    ctx.type = mimetype
    ctx.body = fs.createReadStream(`${UPLOAD_PATH}/${filename}`);
  }
}

module.exports = new userController();
